(1) Field of the Invention
The present invention relates to mesh quality improvement in Computer Aided Engineering.
Computed Aided Engineering (CAE), the use of computer software for the purpose of modelling and simulating the behaviour of products in order to improve their quality, has become nearly ubiquitous in the manufacturing industry. Areas covered by CAE include, but are not limited to, stress and thermal analysis, fluid dynamics and kinematics.
(2) Description of Related Art
A typical CAE process starts with a Computer Aided Design (CAD) file which represents the geometrical model of the object that is analyzed. The CAD file, created using specialized CAD software, passes first through a pre-processing step where the geometry is partitioned (meshed) into a very large number of elements, which form what is called a mesh. An example of a computational mesh is shown in FIG. 1 of the accompanying drawings. The mesh, accompanied by boundary conditions, is then sent to a solver which uses standard numerical techniques in order to compute the result of the analysis.
Currently available meshers can be divided into two categories: serial and parallel. Serial meshers are restricted to the computational power of only one processor and to the memory attached to it. With a mesh of order 1 Million elements requiring in the order of 1 GB of memory to create, it is clear that memory is a severe limitation for such codes. Parallel meshers are able to create much larger meshes and in a much shorter time by distributing the workload to a number of processors found either in one computer or, more often, in a number of computers connected by a network. In accordance with the amount of communication performed between the processors while meshing, parallel mesh generators can be further divided into three categories: tightly coupled, loosely coupled and decoupled. In the serial or parallel-coupled case, one or more processors work to create a single mesh. The quality of this mesh will in general be better than for the decoupled case. However, as this type of meshing is not scalable, the meshing time will in general be very long, especially for complex models such as the ones found in industrial CAD models. Only decoupled parallel meshers (which require no communication or synchronization between different processing parts) can achieve 100% reuse of the serial meshing code and are truly scalable. Scalability is achieved by partitioning the domain that is to be meshed into a number of disjoint sub-domains, which are then independently meshed, so the meshing time is much shorter. Such a scalable parallel-decoupled mesher was recently proposed in EP12173469.3 (US2014039847A1 published Feb. 6, 2014). However, it is possible to create artificially small elements at the interfaces between domains by cutting the CAD model in a poor position. In this case, the overall quality of the mesh will in general be lower. This is especially likely in the case where the cutting plane intersects small CAD features.
The creation of a high quality mesh is very important as it can both reduce the time spent in the solver and increase the accuracy of the solution. The quality of the mesh can be improved with specialized tools ranging from simple Laplacian smoothing (see Electrical Engineering and Computer Sciences University of California at Berkeley, 2008 “Improving Tetrahedral Meshes” page 21) to complex optimization tools like STELLAR (see “Stellar—A Tetrahedral Mesh Improvement Program”, <http://www.cs.berkeley.edu/˜jrs/stellar/#about>) that perform complex sequences of operations on mesh nodes and elements. While the use of complex optimization tools usually results in much higher quality meshes as compared with simple ones, it is also much more expensive. Moreover, high quality mesh optimization codes are very time consuming. A high quality mesh optimization tool such as STELLAR can take as much as 10 times longer than mesh generation, which means such codes cannot be used in day-to-day production work. The natural way of overcoming this problem would be to make use of the multicore CPUs available in modern computers and computer clusters. However, this is currently not possible because many such codes (e.g. STELLAR) are serial in nature and parallelizing them is not straightforward.
Zavattieri, P., Dari, E. and Buscaglia, G. 1996: “Optimization strategies in unstructured mesh generation” International Journal for Numerical Methods in Engineering, 39 (12), pp. 2055-2071, discloses an optimization method for unstructured 3-D finite element meshes. This document discusses different algorithms for improving overall mesh quality including smoothing algorithms, but it does not address scalability.
Mesh optimization software called “Mesquite Mesh Optimization Toolkit” (Sandia Labs, <http://trilinos.sandia.gov/packages/mesquite/>) performs smoothing operations in parallel, but is not readily scalable.
It is desirable to provide a method of generating high quality computational meshes in a decoupled and thus scalable manner.